package com.mjf.cjt.vo;

import com.alibaba.fastjson2.annotation.JSONField;
import lombok.Data;

import java.math.BigDecimal;
import java.util.List;

/**
 * <p>
 * desc
 * </p>
 *
 * @author chenshoumeng
 * @date 2025/7/16 11:16
 */
@Data
public class ExpenseVoucherCreateVO {
    @JSONField(name = "VoucherDate")
    private String VoucherDate; // 将要生成的收入单单据日期
    private String ExternalCode; // 外部单据生成T+收入单的外部单据号
    private BusinessTypeVO BusinessType; // 业务类型
    private BillTypeVO billType; // 票据类型
    private PartnerVO Partner; // BusinessType为37为必填，38时为非必填；T+系统中存在的往来单位，其中的code,表示该往来单位的编码
    private List<DetailVO> Details;

    @Data
    public static class PartnerVO {
        private String code; // BusinessType为37为必填，38时为非必填；T+系统中存在的往来单位，其中的code,表示该往来单位的编码
    }

    @Data
    public static class BillTypeVO {
        private String code; // T+系统中存在的单据类型，其中code表示该票据类型的编码 00:运费发票 , 01:专用发票 , 02:收据，03:普通发票-内含, 04:普通发票
    }
    @Data
    public static class BusinessTypeVO {
        private String Code;// T+系统中存在的业务类型，其中code表示该业务类型的编码 37 往来费用 38 现金费用
    }

    @Data
    public static class DetailVO {
        private String ExpenseitemCode; // 费用编码 - 最低级编码
        private BigDecimal TaxRate; // 税率
        private BigDecimal OrigAmount; // 金额
        private BigDecimal OrigTax; // 税额
        private BigDecimal OrigTaxAmount; // 含税金额
        private String expenseItemUse; // 用途
    }

}
